package com.avic.modules.equipment.service.dto;

import com.avic.annotation.Query;
import lombok.Data;

import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

/**
 * @author zhangzikang
 * @date 2022-08-14
 */
@Data
public class EquipmentRepairQueryCriteria {

    // id
    @Query(propName = "id", type = Query.Type.EQUAL)
    private String id;

    // id
    @Query(propName = "id", type = Query.Type.IN)
    private Set<String> idAll;

    // 工单
    @Query(propName = "workOrder", type = Query.Type.INNER_LIKE)
    private String workOrder;

    // 筛选参数
    private String aggregate;

    // 故障拍照
    @Query(propName = "photographTime", type = Query.Type.BETWEEN)
    private List<Timestamp> photographTime;

    // 故障原因
    @Query(propName = "reason", type = Query.Type.INNER_LIKE)
    private String reason;

    // 设备编号
    private String equipNumber;

    @Query(propName = "equipNumber", type = Query.Type.IN)
    private Set<String> equipNumber1;

    // 设备名称
    @Query(propName = "equipName", type = Query.Type.INNER_LIKE)
    private String equipName;

    // 维修人员名称
    @Query(propName = "repairName", type = Query.Type.INNER_LIKE)
    private String repairName;

    // 维修人user id
    @Query(propName = "repairUserId", type = Query.Type.EQUAL)
    private Long repairUserId;

    // 维修结果
    @Query(propName = "repairResult", type = Query.Type.INNER_LIKE)
    private String repairResult;

    // 维修完成时间
    @Query(propName = "completeTime", type = Query.Type.BETWEEN)
    private List<Timestamp> completeTime;

    // 维修时长
    @Query(propName = "duration", type = Query.Type.EQUAL)
    private Double duration;

    // 创建时间
    @Query(propName = "createUserTime", type = Query.Type.BETWEEN)
    private List<Timestamp> createUserTime;
}
